package com.yang.designmode.Authentication;

import java.util.Map;

/**
 * 1. 将URL、APPID、密码和时间戳拼接为一个字符串。
 * 2. 通过对应的加密算法生成Token。
 * 6. 根据时间戳判断Token是否过期。
 * 7. 验证两个token是否匹配。
 */
public class AuthToken {
    //  token
    private String token;

    //默认过期时间1分钟
    private static final long DEFAULT_EXPIRED_TIME = 1 * 60 * 1000;

    private long expiredTimeInterval = DEFAULT_EXPIRED_TIME;

    private long createTime;

    // 构造方法
    public AuthToken(String token,long createTime) {
        this.token = token;
        this.createTime = createTime;
    }

    public AuthToken(String token,long createTime,long expiredTimeInterval) {
        this.token = token;
        this.createTime = createTime;
        this.expiredTimeInterval = expiredTimeInterval;
    }

    // 生成Token信息
    public static AuthToken generateToken(String baseUrl,long createTime, ApiRequest params) {
        return null;
    }

    //判断token是否过期
    public boolean isExpired() {
        long currentTime = System.currentTimeMillis();
        return currentTime - createTime > expiredTimeInterval;
    }

    public boolean match(AuthToken token){
        return this.token.equals(token.token);
    }
}
